/*
 * ComponentDefinitionBase.java
 *
 * Created on September 2, 2006, 4:16 PM
 *
 * (C) 2006 R. Alexander Milowski
 */

package org.infoset.component;

import java.net.URI;
import java.util.Collection;
import org.infoset.xml.Name;
import org.infoset.xml.XMLException;

/**
 *
 * @author alex
 */
public abstract class ComponentDefinitionBase implements ComponentDefinition {
   
   protected Name name;
   protected String vendor;
   protected String version;
   protected URI vendorLocation;
   
   /** Creates a new instance of ComponentDefinitionBase */
   public ComponentDefinitionBase(Name name,String vendor,String version, URI vendorLocation) {
      this.name = name;
      this.vendor = vendor;
      this.version = version;
      this.vendorLocation = vendorLocation;
   }
   
   public abstract Component newInstance()
      throws XMLException;
   
   public Name getName() {
      return name;
   }
   
   public String getVersion() {
      return version;
   }
   
   public String getVendor() {
      return vendor;
   }
   
   public URI getVendorLocation() {
      return vendorLocation;
   }
   
   public abstract Collection<Name> getInputs();
   
   public abstract Collection<Name> getOutputs();
}
